#include <iostream>
#include <typeinfo>

using namespace std;

class B {
};

class D : public B {
};

void main()
{
    B *pb = new B;
    D *pd = new D;

    cout << "pb's type name:\"" << typeid(pb).name() << "\"" << endl;
    cout << "pd's type name:\"" << typeid(pd).name() << "\"" << endl;
#if defined(_MSVC)
    cout << "pb's type raw name:\"" << typeid(pb).raw_name() << "\"" << endl;
    cout << "pd's type raw name:\"" << typeid(pd).raw_name() << "\"" << endl;
    cout << "int's type name:\"" << typeid(int).name() << "\"" << endl;
    cout << "int's type raw name:\"" << typeid(int).raw_name() << "\"" << endl;
#endif
}
